CREATE PROCEDURE [dbo].[CheckPrescriptionHistory]
    @PrescriptionId UNIQUEIDENTIFIER,
    @PrescriptionType TINYINT
AS
BEGIN
    DECLARE @RepeatCount SMALLINT = 0;

    IF EXISTS
    (
        SELECT 1
        FROM dbo.TmpDrugH H
        WHERE H.kind_Save = 2
              AND H.PrescriptionType = @PrescriptionType
              AND H.PrescriptionId = @PrescriptionId
    )
    BEGIN
        SELECT 101 StatusCode,
               N'     ǘ    ' StatusMsg;

        SET @RepeatCount = 1;
        SELECT ROW_NUMBER() OVER (ORDER BY H.Id_Havaleh) RowIndex,
               H.Kind_Flag PrescriptionKind,
               CASE
                   WHEN H.Kind_Flag = 1 THEN
                       N' - '
                   ELSE
                       N'ѐ - '
               END PrescriptionKindCaption,
               CASE
                   WHEN H.Kind_Flag = 1 THEN
                       H.Nu_Forosh
                   ELSE
                       H.Nu_Bargasht_Forosh
               END InvoiceNo,
               H.[User_id] CreatedBy,
               H.User_Cash,
               dbo.MiladiToShamsi(H.Tarikh) CreatedDateOn,
               CONVERT(VARCHAR(8), H.Tarikh, 108) CreatedTimeOn
        FROM dbo.TmpDrugH H
        WHERE PrescriptionType = @PrescriptionType
              AND kind_Save = 2
              AND PrescriptionId = @PrescriptionId;
    END;
    ELSE
    BEGIN
        SELECT @RepeatCount = ISNULL(SUM(SUB.RepeatCount), 0)
        FROM
        (
            SELECT CASE
                       WHEN Kind_Flag = 1 THEN
                           -1 * COUNT(H.Kind_Flag)
                       ELSE
                           COUNT(H.Kind_Flag)
                   END RepeatCount
            FROM dbo.DrugH H
            WHERE H.kind_Save = 0
                  AND H.PrescriptionType = @PrescriptionType
                  AND H.PrescriptionId = @PrescriptionId
            GROUP BY Kind_Flag
        ) AS SUB;

        IF (@RepeatCount < 0)
        BEGIN
            SELECT 102 StatusCode,
                   '              ' StatusMsg;

            SELECT ROW_NUMBER() OVER (ORDER BY H.Id_Havaleh) RowIndex,
                   H.Kind_Flag PrescriptionKind,
                   CASE
                       WHEN H.Kind_Flag = 1 THEN
                           N' - '
                       ELSE
                           N'ѐ -  '
                   END PrescriptionKindCaption,
                   CASE
                       WHEN H.Kind_Flag = 1 THEN
                           H.Nu_Forosh
                       ELSE
                           H.Nu_Bargasht_Forosh
                   END InvoiceNo,
                   H.[User_id] CreatedBy,
                   H.User_Cash,
                   dbo.MiladiToShamsi(H.Tarikh) CreatedDateOn,
                   CONVERT(VARCHAR(8), H.Tarikh, 108) CreatedTimeOn
            FROM dbo.DrugH H
            WHERE PrescriptionType = @PrescriptionType
                  AND kind_Save = 0
                  AND PrescriptionId = @PrescriptionId;
        END;
        ELSE
            SELECT 100 StatusCode,
                   N'      ' StatusMsg;
    END;
END;